class Solution740 {
    public int deleteAndEarn(int[] nums) {
        int[] arr = new int[10001] ; 
        for(int i : nums){
            arr[i] ++ ;
        }
        // 要第i个
        int[] f = new int[10001] ;
        // 不要第i个  
        int[] g = new int[10001] ;
        f[1] = arr[1] ; 
        for(int i=2 ; i <= 10000 ; i ++){
            f[i] = i*arr[i] + g[i-1] ; 
            g[i] = Math.max(g[i-1] , f[i-1]) ;
        } 
      return Math.max(f[10000] , g[10000]) ; 
    }
}